package threading;

import java.util.Scanner;

public class ThreadDemo15 {
    //加volatile关键字可以保证内存是可见的，并且能禁止指令重排序
//        public static volatile int flag = 0;
        public static int flag = 0;
    public static void main(String[] args) {

        Thread t1 = new Thread( () -> {
              while (flag == 0) {
                  //flag == 0 这个操作分为:
                  //load : 从内存中读取数据到cpu寄存器  --时间开销很大 远远高于cmp 此时 cpu有个大胆的操作，将load操作优化了，就只执行了第一次的操作读取到 0
                  // cmp :  比较寄存器中的值是否是0

              }
            System.out.println(" 循环结束，t1线程结束");
        });
        Thread t2 = new Thread( () -> {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个整数");
            flag = sc.nextInt();

        });
        t1.start();
        t2.start();



    }
}
